
package BUFE;

import DTL.*;

/**
 * 
 * Classe destinée à gérer les clients
 */
public class ClientManager {
    
    /**
     * Méthode récapitulative destinée à vérifier que les champs relatifs au client ont été correctement formatés
     * @param client définit un objet de type Client_Entite
     * @return true si le format du client est bon, false dans le cas contraire
     */
    public static boolean validate(Client_Entite client) {
        return (testNom(client) && testPrenom(client) && testAdresseFacturation(client) && testAdresseLivraison(client) && testTelephone(client) && testEmail(client));
    }
    
    /**
     * Méthode destinée à vérifier que le champ Nom du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ Nom est bon, false dans le cas contraire
     */
    public static boolean testNom(Client_Entite client) {
        return (client.getNom().trim().isEmpty()) ? false : true;
    }
    
    /**
     * Méthode destinée à vérifier que le champ Prénom du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ Prénom est bon, false dans le cas contraire
     */
    public static boolean testPrenom(Client_Entite client) {
        return (client.getPrenom().trim().isEmpty()) ? false : true;
    }
    
    /**
     * Méthode destinée à vérifier que le champ Téléphone du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ Téléphone est bon, false dans le cas contraire
     */
    public static boolean testTelephone(Client_Entite client) {
        return MethodeManager.testTelephone(client.getTelephone().trim()) ? true : false;
    }
    
    /**
     * Méthode destinée à vérifier que le champ E-mail du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ E-mail est bon, false dans le cas contraire
     */
    public static boolean testEmail(Client_Entite client) {
        return MethodeManager.testEmail(client.getEmail().trim()) ? true : false;
    }
    
    /**
     * Méthode destinée à vérifier que le champ Adresse de facturation du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ Adresse de facturation est bon, false dans le cas contraire
     */
    public static boolean testAdresseFacturation(Client_Entite client) {
        return (client.getAdresseFacturation().trim().isEmpty()) ? false : true;
    }
    
    /**
     * Méthode destinée à vérifier que le champ Adresse de livraison du client a été correctement formaté
     * @param client définit un objet de type Client_Entite
     * @return true si le format du champ Adresse de livraison est bon, false dans le cas contraire
     */
    public static boolean testAdresseLivraison(Client_Entite client) {
        return (client.getAdresseLivraison().trim().isEmpty()) ? false : true;
    }
    
}